import os,django
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DXdjango.settings.dev')
# 设置 Django 环境变量：
# os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DXdjango.settings.dev')
# 这行代码设置了 Django 的环境变量，告诉 Django 使用哪个设置文件。在这个例子中，
# 它使用的是 DXdjango.settings.dev，这通常意味着你有一个名为 DXdjango 的 Django 项目，
# 并且你正在使用名为 dev 的开发设置文件。
django.setup()
# 初始化 Django：
# django.setup() 这行代码初始化了 Django，加载了所有的设置、应用和中间件。这是在使用 Django 模型、
# 数据库连接或其他 Django 特定功能之前必须做的。
app = Celery('DXdjango')
# app = Celery('DXdjango') 这行代码创建了一个名为 DXdjango 的 Celery 实例。这个名字通常与你的 Django 项目名相同，
# 但它可以是任何字符串，用于在 Celery 中唯一标识这个实例。


app.config_from_object('mycelery.settings', namespace='CELERY')
# 从配置对象加载配置：
# app.config_from_object('mycelery.settings', namespace='CELERY')
# 这行代码从 mycelery.settings 模块加载 Celery 配置。
# namespace='CELERY' 参数意味着 Celery 将会查找以 CELERY_ 开头的配置变量。
# 例如，如果你在 mycelery.settings 中有一个 CELERY_BROKER_URL 变量，
# 它将会被用作 Celery 的消息代理（broker）的 URL


app.autodiscover_tasks(['mycelery.sms'],)
# autodiscover_tasks：这是Celery实例的一个方法，
# 用于自动发现并注册任务。它会遍历指定的Django应用列表，
# 查找每个应用中名为tasks.py的文件（或通过CELERY_TASK_MODULE设置指定的其他文件），
# 并加载其中的任务。

# celery -A mycelery.main worker -l INFO -P eventlet -c 10